﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AgileSaude.Data.Repository
{
    public class pedido_servicosRepository : Ipedido_servicosRepository
    {
        agilesaudeEntities entity;

        public pedido_servicosRepository()
        {
            entity = agilesaudeContext.getInstance();
        }

        public IQueryable<pedido_servicos> Getpedido_servicoss()
        {
            return agilesaudeContext.getInstance().pedido_servicos;
        }

        public IQueryable<pedido_servicos> Getpedido_servicoss(int pIdPedido)
        {
            return   from a in agilesaudeContext.getInstance().pedido_servicos
                    where a.idPedido == pIdPedido
                   select a;
        }

        public IList<pedido_servicos> GetAll()
        {
            return agilesaudeContext.getInstance().pedido_servicos.ToList();
        }

        public IList<pedido_servicos> GetAll(int pIdPedido)
        {
            return ( from a in agilesaudeContext.getInstance().pedido_servicos
                    where a.idPedido == pIdPedido
                   select a).ToList();
        }

        public pedido_servicos getpedido_servicos(int ppedido_servicosId)
        {
            return entity.pedido_servicos.SingleOrDefault(a => a.idPedido_servicos == ppedido_servicosId);
        }

        public pedido_servicos getpedido_servicos(int pIdPedido, int pItem)
        {
            return entity.pedido_servicos.SingleOrDefault(a => a.idPedido == pIdPedido && a.Item == pItem);
        }

        public void Delete(pedido_servicos ppedido_servicos)
        {
            try
            {
                entity.pedido_servicos.DeleteObject(ppedido_servicos);
                entity.SaveChanges();
            }
            catch (Exception ex)
            {
                agilesaudeContext.removeInstance();
                throw ex;
            }
        }

        public void Add(pedido_servicos ppedido_servicos)
        {
            try
            {
                entity.AddTopedido_servicos(ppedido_servicos);
                entity.SaveChanges();
            }
            catch (Exception ex)
            {
                agilesaudeContext.removeInstance();
                throw ex;
            }
        }

        public void Update()
        {
            try
            {
                entity.SaveChanges();
            }
            catch (Exception ex)
            {
                agilesaudeContext.removeInstance();
                throw ex;
            }
        }

        
    }
}
